home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Source Code
/
Visual Basic Source Code.iso
/
vbsource
/
rpcdcpro
/
rpcdc.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-11-15
|
10KB
|
285 lines
#ifndef _RPCDC_INCLUDED
#define _RPCDC_INCLUDED
#ifdef WIN32
#include <windows.h>
#else
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#define SOCKET int
#endif
#include <stdlib.h>
#include <xdr_buf.h>
#include <rpc_msg.h>
typedef struct _REG_INFO {
char *ID;
unsigned long Key1;
unsigned long Key2;
} _REG_INFO;
//------------------------------------------------------------------
// New functions added recently
//------------------------------------------------------------------
int _rpc_gethostname (char *hostname,
int maxlen,
char *ipaddr);
//------------------------------------------------------------------
// Old functions
//------------------------------------------------------------------
size_t _rpcsend_buffer (SOCKET Socket,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer,
void *Buffer,
size_t (*xdr_func)(void *, void *, int));
//------------------------------------------------------------------
size_t _rpcrecv_buffer (SOCKET Socket,
XDR_BUFFER *xdr_buffer,
void *Buffer,
size_t (*xdr_func)(void *, void *, int));
//------------------------------------------------------------------
size_t _rpcsend_buffer (SOCKET Socket,
RPC_MSG *rpc_msg,
char *Buffer,
size_t Len);
//------------------------------------------------------------------
size_t _rpcrecv_buffer (SOCKET Socket,
char *Buffer,
size_t Len);
//------------------------------------------------------------------
int _rpc_flush (SOCKET Socket,
RPC_MSG *rpc_msg);
//------------------------------------------------------------------
int _rpcsend_int (SOCKET Socket,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer,
int I);
//------------------------------------------------------------------
int _rpcrecv_int (SOCKET Socket,
XDR_BUFFER *xdr_buffer,
int *I);
//------------------------------------------------------------------
int _rpcsend_uint (SOCKET Socket,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer,
unsigned int I);
//------------------------------------------------------------------
int _rpcrecv_uint (SOCKET Socket,
XDR_BUFFER *xdr_buffer,
unsigned int *I);
//------------------------------------------------------------------
int _rpcsend_long (SOCKET Socket,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer,
long I);
//------------------------------------------------------------------
int _rpcrecv_long (SOCKET Socket,
XDR_BUFFER *xdr_buffer,
long *I);
//------------------------------------------------------------------
int _rpcsend_short (SOCKET Socket,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer,
short I);
//------------------------------------------------------------------
int _rpcrecv_short (SOCKET Socket,
XDR_BUFFER *xdr_buffer,
short *I);
//------------------------------------------------------------------
int _rpcsend_char (SOCKET Socket,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer,
char C);
//------------------------------------------------------------------
int _rpcrecv_char (SOCKET Socket,
XDR_BUFFER *xdr_buffer,
char *C);
//------------------------------------------------------------------
int _rpcsend_string (SOCKET Socket,
RPC_MSG *rpc_msg,
char *S,
size_t SLen);
//------------------------------------------------------------------
int _rpcrecv_string (SOCKET Socket,
char *S,
size_t SLen);
//------------------------------------------------------------------
int _rpcsend_float (SOCKET Socket,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer,
float X);
//------------------------------------------------------------------
int _rpcrecv_float (SOCKET Socket,
XDR_BUFFER *xdr_buffer,
float *X);
//------------------------------------------------------------------
int _rpcsend_double (SOCKET Socket,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer,
double X);
//------------------------------------------------------------------
int _rpcrecv_double (SOCKET Socket,
XDR_BUFFER *xdr_buffer,
double *X);
//------------------------------------------------------------------
int _rpcsend_tabfloat (SOCKET Socket,
RPC_MSG *rpc_msg,
float *X,
long int N,
int RestoreData);
//------------------------------------------------------------------
int _rpcrecv_tabfloat (SOCKET Socket,
float *X,
long int N);
//------------------------------------------------------------------
int _rpcsend_tabdouble (SOCKET Socket,
RPC_MSG *rpc_msg,
double *X,
long int N,
int RestoreData);
//------------------------------------------------------------------
int _rpcrecv_tabdouble (SOCKET Socket,
double *X,
long int N);
//------------------------------------------------------------------
#define rpcrecv_ulong(S,X,I) rpcrecv_long(S,X,(long *)I)
#define rpcsend_ulong(S,R,X,I) rpcsend_long(S,R,X,(long)I)
#define rpcrecv_ushort(S,X,I) rpcrecv_short(S,X,(short *)I)
#define rpcsend_ushort(S,R,X,I) rpcsend_short(S,R,X,(short)I)
#define rpcrecv_bool rpcrecv_int
#define rpcsend_bool rpcsend_int
//------------------------------------------------------------------
void _ServerMainLoop (_REG_INFO *RegInfo);
//------------------------------------------------------------------
int _StartServerDaemon (char *service,
int max_timeout,
char *logfile,
size_t bufsize,
void (*Constructor)(void *),
void (*Destructor)(void *),
void (*Dispatch)(int,int),
int (*AcceptConnection)(char *),
void (*udpManager)(SOCKET),
_REG_INFO *RegInfo,
SOCKET *tcpSocket,
SOCKET *udpSocket);
//------------------------------------------------------------------
void _StopServerDaemon (SOCKET tcpSocket,
SOCKET udpSocket);
//------------------------------------------------------------------
int _GetClientInfo (int idClient,
SOCKET *socket,
RPC_MSG **rpc_msg,
XDR_BUFFER **xdr_buffer,
char **client_buffer);
//------------------------------------------------------------------
void _GetErrMsg (char *msg);
//------------------------------------------------------------------
SOCKET _StartTCPClient (char *servername,
char *service,
int max_timeout,
RPC_MSG *rpc_msg,
XDR_BUFFER *xdr_buffer);
//--------------------------------------------------------------